void main(List<String> args) {
  // 空安全机制
  // 1. 定义
  String? name = '张三';
  // 2. 判空
  print(name);
  // 3. 空合并运算符
  print(name ?? '默认值');
  // 4. 级联运算符
  name = '李四';
  print(name);
  name = '王五';
  print(name);

  // 5. 非空断言运算符
  print(name);

  // 6. 空安全的集合
  List<String>? list = ['张三', '李四', '王五'];
  print(list);
  // 7. 空安全的映射
  Map<String, dynamic>? map = {
    'name': '张三',
    'age': 18,
    'sex': '男',
  };
  print(map);
  // 8. 空安全的函数
  void sayHello(String? name) {
    print('hello $name');
  }
  sayHello('张三');
  sayHello(null);

  // 空合并运算符
  String? name2 = null;
  print(name2 ?? '默认值');
  // 级联运算符
  name2 = '张三';
  print(name2);
  name2 = '李四';
  print(name2);
  // 非空断言运算符
  print(name2);
  // 空安全的集合
  List<String>? list2 = null;
  print(list2);
  // 空安全的映射
  Map<String, dynamic>? map2 = null;
  print(map2);
  // 空安全的函数
  void sayHello2(String? name) {
    print('hello $name');
  }
  sayHello2('张三');
  sayHello2(null);
}